Random numbers have a wide application in various applications. Conventional methods of producing random numbers include two methods, the first of which includes utilizing a physical phenomenon that is expected to be random, and translate the results into random numbers. Such conventional methods include dice, coin flipping and roulette wheels. However, these methods are too slow for applications in statistics and cryptography.
The other method of producing random numbers relies on the behavior of human users of a given system. For example, some security-related computer software requires the user to make a lengthy series of mouse movements or keyboard inputs to create sufficient entropy needed to generate random keys or to initialize pseudorandom number generators. However, human subjects have some degree of non-randomness when generating a random sequence, which prevents these methods from being true random number generators.
True random number generation is desirable in some applications such as complex financial simulation, gambling, statistical sampling, cryptography, etc. Various embodiments described herein describe systems and methods of generating true random numbers using superparamagnetism as will be discussed in further detail below.